﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Drawing;
public partial class frmUsuario : cGlobal
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.CargarRoles();
            this.CargarUsuarios();  
        }
    }
  

 protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
{
      Limpiar();
   

}


 protected void grdUsuarios_RowEditing(object sender, GridViewEditEventArgs e)
 {
     GridViewRow gvr = this.grdUsuarios.Rows[e.NewEditIndex];
     this.hidIUsuario.Value = Server.HtmlDecode(gvr.Cells[0].Text);
     this.txtNombre1.Text = Server.HtmlDecode(gvr.Cells[2].Text);
     this.txtNombre2.Text = Server.HtmlDecode(gvr.Cells[3].Text);
     this.txtApellido1.Text = Server.HtmlDecode(gvr.Cells[4].Text);
     this.txtApellido2.Text = Server.HtmlDecode(gvr.Cells[5].Text);
     this.TxtLogin.Text = Server.HtmlDecode(gvr.Cells[1].Text);
     this.txtCedula.Text = Server.HtmlDecode(gvr.Cells[6].Text);
     this.TxtTelefono.Text = Server.HtmlDecode(gvr.Cells[7].Text);
     this.TxtCorreo.Text = Server.HtmlDecode(gvr.Cells[8].Text);
     this.hidUsuarioNuevo.Value = "0";
     this.hidPassword.Value = Server.HtmlDecode(gvr.Cells[9].Text);
    

     GridView grdUsuarios = (GridView)gvr.NamingContainer;
     this.hidIUsuario.Value = grdUsuarios.DataKeys[gvr.RowIndex]["ID"].ToString();
     this.drpRol.SelectedValue = grdUsuarios.DataKeys[gvr.RowIndex]["ROL"].ToString();
 }
 protected void btnBuscrar_Click(object sender, ImageClickEventArgs e)
 {
     bool valFilterT;
     valFilterT  = valFilter();

     if (valFilterT == false)
     {
         objJavaScript.jsAlert("Es necesario seleccionar al menor un parametro de Filtro", Page);
         this.txtNombre1.Focus();
     }
     else
     {
         CargarUsuariosFilter();
     }



 }

 protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
{


    Int16 UserNew;
    UserNew = Convert.ToInt16(this.hidUsuarioNuevo.Value);

    bool val;
    val = validar();
   try
   {
    
    if (val == true )
    {
       
             if (UserNew == 1)
            {

                int resultado = objSeguridad.ActualizarUsuario(0, 0, 0, this.TxtLogin.Text, "12345", this.txtCedula.Text, this.txtNombre1.Text, this.txtNombre2.Text, this.txtApellido1.Text, this.txtApellido2.Text, this.TxtTelefono.Text, this.TxtCorreo.Text, ".", Convert.ToInt16(this.drpRol.SelectedValue));

                 

                if (resultado > 0)
                {
                    this.CargarUsuarios();
                    Limpiar(); 
                    objJavaScript.jsAlert("Se creo correctamente el usuario. ", Page);
                    
                }
                else
                {
    
                    objJavaScript.jsAlert("No se creo el usuario porque ya existe ", Page);
                }
                
                
            }
            else
            {
                Int16 IdUser;
                IdUser = Convert.ToInt16(this.hidIUsuario.Value);
                string pwd;
                pwd = Convert.ToString(this.hidPassword.Value);

                int resultado = objSeguridad.ActualizarUsuario(IdUser, 0, 0, this.TxtLogin.Text, pwd, this.txtCedula.Text, this.txtNombre1.Text, this.txtNombre2.Text, this.txtApellido1.Text, this.txtApellido2.Text, this.TxtTelefono.Text, this.TxtCorreo.Text, ".", Convert.ToInt16(this.drpRol.SelectedValue));
                 this.CargarUsuarios(); 
                 objJavaScript.jsAlert("Se actualizo correctamente la información del Usuario.", Page);
               
            }   
        

     }
     }
     catch (Exception ex)
      {
            objJavaScript.jsAlert("Ocurrió un error al guardar." , Page);
     }
    

}

private bool valFilter()
 {
    string test;
     
     test = "";

     test = this.txtNombre1.Text;

     if (test == "")
     { 
       test = this.txtNombre2.Text;
     }

     if (test == "")
     {
        test = this.txtApellido1.Text;
     }

     if (test == "")
     {  
        test = this.txtApellido2.Text ;
     }


     if (test == "")
     {
        test = this.txtCedula.Text;
     }

     if (test == "")
     {
        test = this.TxtLogin.Text;
     }

    

     if (string.IsNullOrEmpty(test))
     {
         return false;
     }
     else
     {
         return true;
     }

      

 }
 

private void CargarRoles()
 {
     try
     {
         DataSet dts = objSeguridad.GetRoles(); 
         if (dts.Tables[0].Rows.Count > 0)
         {
             this.drpRol.DataSource = dts.Tables[0];
             this.drpRol.DataValueField = dts.Tables[0].Columns[0].ColumnName;
             this.drpRol.DataTextField = dts.Tables[0].Columns[1].ColumnName;
         }
         else
             this.drpRol.DataSource = null;

         this.drpRol.DataBind();
         this.drpRol.Items.Insert(0, new ListItem("Seleccione...", "0"));
     }
     catch (Exception ex)
     {
        // Page.ClientScript.RegisterStartupScript(this.GetType(), "JS", "<script language='javascript'> alert('No se pudieron cargar las transportadoras: " + Utilidades.FormatearMensajeError(ex.Message) + "'); </Script>");
     }
 }

private void CargarUsuarios()
{
    DataSet ds;
    ds = objSeguridad.GetUsuarios();  
    this.grdUsuarios.DataSource = ds.Tables[0];
    this.grdUsuarios.DataBind();
    this.grdUsuarios.Columns[0].Visible = false;
    this.grdUsuarios.Columns[9].Visible = false;
    this.grdUsuarios.Columns[10].Visible = false;
}

private void CargarUsuariosFilter()
{
    try
    {
       
    DataSet ds;
    ds = objSeguridad.GetUsuariosFilter(this.txtNombre1.Text, this.txtNombre2.Text, this.txtApellido1.Text, this.txtApellido2.Text, this.TxtLogin.Text, this.txtCedula.Text);
    if (ds.Tables[0].Rows.Count > 0)
    {
        this.grdUsuarios.DataSource = ds.Tables[0];
        this.grdUsuarios.DataBind();
        this.grdUsuarios.Columns[0].Visible = false;
        this.grdUsuarios.Columns[9].Visible = false;
        this.grdUsuarios.Columns[10].Visible = false;
    }
    else
    {
        objJavaScript.jsAlert("No se encontraron usuarios con los parámetros indicados.", Page);
    }
    }
    catch (Exception ex)
    {
    }

   
}

private void Limpiar()
{
    this.txtApellido1.Text = "";
    this.txtApellido2.Text = "";
    this.txtNombre1.Text = "";
    this.txtNombre2.Text = "";
    this.txtCedula.Text = "";
    this.TxtTelefono.Text = "";
    this.TxtCorreo.Text = "";
    this.hidUsuarioNuevo.Value  = "1";
    this.drpRol.SelectedValue = "0";
    this.TxtLogin.Text = "";
 }

private bool validar()
{

    if (string.IsNullOrEmpty(this.txtNombre1.Text))
    {
        objJavaScript.jsAlert("Es necesario ingresar el primer nombre del usuario", Page);
        this.txtNombre1.Focus();
        return false;
    }

	if (string.IsNullOrEmpty(this.txtApellido1.Text)) 
    {
        objJavaScript.jsAlert("Es necesario ingresar el primer apellido del usuario", Page);
        this.txtApellido1.Focus(); 
		return false;
	}

    if (string.IsNullOrEmpty(this.txtCedula.Text))
    {
        objJavaScript.jsAlert("Es necesario ingresar la cedula del usuario", Page);
        this.txtCedula.Focus();
        return false;
    }

    if (string.IsNullOrEmpty(this.TxtLogin.Text))
    {
        objJavaScript.jsAlert("Es necesario ingresar el nombre de usuario", Page);
        this.TxtLogin.Focus();
        return false;
    }

    if (Convert.ToInt16(this.drpRol.SelectedValue) == 0)
    {
        objJavaScript.jsAlert("Es necesario seleccionar el rol al cual pertenece el usuario", Page);
        this.drpRol.Focus();
        return false;
    }



	return true;
}



protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        objSeguridad.EliminarUsuario(Convert.ToInt16(this.hidIUsuario.Value.ToString()));
        this.Limpiar();
        this.CargarUsuarios();
        objJavaScript.jsAlert("Se Elimino correctamente el usuario", Page);
    }
    catch (Exception ex)
    {
        objJavaScript.jsAlert("Ocurrio un error al elimiar el usuario", Page);
    }
   
}
}



